#ifndef __QE_HWBOOT_H__
#define __QE_HWBOOT_H__



#include "qe_device.h"



enum {
    QE_HWBOOT_IOC_BOOT = 0x21,
};



struct qe_hwboot_device;
typedef struct qe_hwboot_device qe_hwboot_dev;

typedef struct
{
    void (*boot)(qe_hwboot_dev *dev, qe_ubase addr);
} qe_hwboot_ops;

typedef struct qe_hwboot_device
{
    qe_dev dev;
    const qe_hwboot_ops *ops;
} qe_hwboot_dev;

#define qe_hwboot_dev_priv(dev) ((dev)->dev.priv)



void qe_hw_boot(qe_hwboot_dev *dev, qe_ubase addr);

qe_ret qe_hwboot_register(qe_hwboot_dev *hwb, qe_const_str name, qe_hwboot_ops *ops, void *priv);



#endif /* __QE_HWBOOT_H__ */